从底层来讲,自动配置(auto-configuration)是通过标准的@Configuration
类实现的。此外,@Conditional
注解用来约束自动配置生效的条件。通常自动配置类需要使用@ConditionalOnClass
和@ConditionalOnMissingBean
注解,这是为了确保只有在相关的类被发现及没有声明自定义的@Configuration
时才应用自动配置,具体查看spring-boot-autoconfigure
源码中的@Configuration
类(META-INF/spring.factories
文件)。